import { requestClient } from '#/api/request';

export namespace AiPromptVariablesApi {
  /** 提示词变量信息 */
  export interface PromptVariables {
    id: number; // 提示词变量id
    promptId?: number; // 提示词ID
    name?: string; // 变量名
    displayName: string; // 显示名称
    javaType: string; // 字段类型
    htmlType: string; // 表单类型
    dataType: string; // 数据类型
    defaultValue: string; // 默认值
    description: string; // 	变量用途说明
    example: string; // 示例
    required: boolean; // 是否必填
    displayFlag: string; // 是否显示
    disabled: boolean; // 是否可编辑
    validationRules: string; // 验证规则
    sort: number; // 排序
    metadata: any; // 其他参数
    parentId: number; // 上级变量id
    children?: PromptVariables[];
  }
}

/** 查询提示词变量列表 */
export function getPromptVariablesList(data: any) {
  return requestClient.post<AiPromptVariablesApi.PromptVariables[]>(
    '/ai/prompt-variables/list',
    data,
  );
}

/** 查询提示词变量详情 */
export function getPromptVariables(id: number) {
  return requestClient.get<AiPromptVariablesApi.PromptVariables>(
    `/ai/prompt-variables/get?id=${id}`,
  );
}

/** 新增提示词变量 */
export function createPromptVariables(
  data: AiPromptVariablesApi.PromptVariables,
) {
  return requestClient.post('/ai/prompt-variables/create', data);
}

/** 修改提示词变量 */
export function updatePromptVariables(
  data: AiPromptVariablesApi.PromptVariables,
) {
  return requestClient.put('/ai/prompt-variables/update', data);
}

/** 删除提示词变量 */
export function deletePromptVariables(id: number) {
  return requestClient.delete(`/ai/prompt-variables/delete?id=${id}`);
}

/** 导出提示词变量 */
export function exportPromptVariables(params: any) {
  return requestClient.download('/ai/prompt-variables/export-excel', {
    params,
  });
}
